/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.estacionamiento.bl;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itschapala.dsw2.estacionamiento.dao.CobroDaoLocal;
import mx.itschapala.dsw2.estacionamiento.enumeracion.EstadoRegistro;
import mx.itschapala.dsw2.estacionamiento.modelo.Cobro;

/**
 *
 * @author Lindemann
 */
@Stateless
public class CobroBl implements CobroBlLocal {

    @EJB
    private CobroDaoLocal cobroDao;

    @Override
    public EstadoRegistro register(Cobro cobro, long precio) {
        if (cobroDao.findDuplicity(cobro)) {
           
            return EstadoRegistro.INCOMPLETE;
        } else {
            cobro.setFecha(new Date());
            cobro.setTiempo(new Date());
          cobro.setTarifa((int)precio);
            cobroDao.create(cobro);
            return EstadoRegistro.COMPLETE;

        }
    }

    @Override
    public Cobro findById(Integer id) {
        return cobroDao.find(id);
    }

    @Override
    public List<Cobro> getAll() {
        return cobroDao.findAll();
    }

    @Override
    public EstadoRegistro delete(Cobro cobro) {
        if(cobro.getId()!=null || cobroDao.find(cobro.getId())!=null){
            cobroDao.remove(cobro);
            return EstadoRegistro.COMPLETE;
        } else{
            return EstadoRegistro.INCOMPLETE;
        }
        
    }

    @Override
    public void findCobro(Cobro cobro) {
        cobroDao.find(cobro);
    }

    @Override
    public EstadoRegistro modify(Cobro cobro) {
        if(cobro.getId()==null || cobroDao.find(cobro.getId())==null){
            return EstadoRegistro.INCOMPLETE;
        } else{
        cobroDao.edit(cobro);
        return EstadoRegistro.COMPLETE;
                }
    }
}
